Using Run-Time Data for Program Comprehension
نویسندگان
چکیده
Traditional approaches for program comprehension use static program analysis or dynamic program analysis in the form of execution traces. Our approach, however, makes use of runtime-data such as parameter and object values. Compared to traditional program comprehension techniques, this approach enables fundamentally new ways of program analysis which we have not seen so far. Reflection analysis which allows engineers to understand programs making use of reflective (dynamic) method invocations is one such analysis. Another is object tracing which allows engineers to trace and track the use of a given instance of a class within the program to be understood. In this paper, we present these techniques along with a case study to which we have applied them.
منابع مشابه
Applicability of Program Comprehension to Sparse Matrix Computations
Space{eecient data structures for sparse matrices typically yield programs in which not all data dependencies can be determined at compile time. Automatic pa-rallelization of such codes is usually done at run time, e.g. by applying the inspector{ executor technique, incurring tremendous overhead. | Program comprehension techniques have been shown to improve automatic parallelization of dense ma...
متن کاملMeasurement of Complexity and Comprehension of a Program Through a Cognitive Approach
The inherent complexity of the software systems creates problems in the software engineering industry. Numerous techniques have been designed to comprehend the fundamental characteristics of software systems. To understand the software, it is necessary to know about the complexity level of the source code. Cognitive informatics perform an important role for better understanding the complexity o...
متن کاملUsefulness of the Run-time Structure during Coding Tasks
Diagrams can help with program understanding and code modification tasks. Today, many tools extract diagrams of packages, classes, associations and dependencies. However, during coding activities, developers often ask questions about objects and relations between objects, i.e., the run-time structure. Most tools that display the run-time structure show only partial views based on running the sy...
متن کاملPredicting Runtime Data Dependences for Slice Inspection Prioritization
Data dependences are building blocks for techniques such as program slicing and, thus, are useful for program comprehension and debugging. Unfortunately, static analysis identifies many data dependences that are infeasible or unlikely to occur at runtime. Dynamic analysis, in contrast, does not identify all data dependences that can occur in a program. To address this inaccuracy, we present a n...
متن کاملDebugging into Examples Leveraging Tests for Program Comprehension
Enhancing and maintaining a complex software system requires detailed understanding of the underlying source code. Gaining this understanding by reading source code is difficult. Since software systems are inherently dynamic, it is complex and time consuming to imagine, for example, the effects of a method’s source code at run-time. The inspection of software systems during execution, as encour...
متن کامل